package io.terminus.spzx.manager.service;

import com.github.pagehelper.PageInfo;
import io.terminus.spzx.model.dto.system.SysRoleDto;
import io.terminus.spzx.model.entity.system.SysRole;

import java.util.Map;

/**
 * @Author lichunlong lcl253137@alibaba-inc.com
 * @Desc 系统角色Service接口
 * @Date 2024-05-09
 */
public interface SysRoleService {

    /**
     * 分页查询角色列表
     *
     * @param sysRoleDto 系统角色DTO
     * @param current    分页信息: 当前页
     * @param limit      分页信息: 每页条数
     * @return 系统角色分页数据
     */
    PageInfo<SysRole> findByPage(SysRoleDto sysRoleDto, Integer current, Integer limit);

    /**
     * 根据用户ID查询角色列表
     *
     * @param userId 用户ID
     * @return 角色列表
     */
    Map<String, Object> findByUserId(Long userId);

    /**
     * 保存角色
     *
     * @param sysRole 系统角色
     */
    void saveSysRole(SysRole sysRole);

    /**
     * 修改角色
     *
     * @param sysRole 系统角色
     */
    void updateSysRole(SysRole sysRole);

    /**
     * 删除角色
     *
     * @param roleId 角色ID
     */
    void deleteById(Long roleId);
}
